<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<title>Aria: ArBasePacket Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Aria
   &#160;<span id="projectnumber">2.9.4</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li><a href="examples.html"><span>Examples</span></a></li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classArBasePacket.html','');});
</script>
<div id="doc-content">
<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pro-methods">Protected Member Functions</a> &#124;
<a href="#pro-attribs">Protected Attributes</a> &#124;
<a href="classArBasePacket-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">ArBasePacket Class Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p>Base packet class.  
 <a href="classArBasePacket.html#details">More...</a></p>

<p><code>#include &lt;ArBasePacket.h&gt;</code></p>

<p>Inherited by <a class="el" href="classArAMPTUPacket.html">ArAMPTUPacket</a>, <a class="el" href="classArDPPTUPacket.html">ArDPPTUPacket</a>, ArLMS1XXPacket, <a class="el" href="classArLMS2xxPacket.html">ArLMS2xxPacket</a>, <a class="el" href="classArRobotPacket.html">ArRobotPacket</a>, <a class="el" href="classArRVisionPacket.html">ArRVisionPacket</a>, ArS3SeriesPacket, <a class="el" href="classArSonyPacket.html">ArSonyPacket</a>, ArSZSeriesPacket, and <a class="el" href="classArVCC4Packet.html">ArVCC4Packet</a>.</p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a0a7bbc1ab8cc9f53b01880dc53f1e92b"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a0a7bbc1ab8cc9f53b01880dc53f1e92b">ArBasePacket</a> (<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> bufferSize=0, <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> headerLength=0, char *buf=NULL, <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> footerLength=0)</td></tr>
<tr class="memdesc:a0a7bbc1ab8cc9f53b01880dc53f1e92b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor.  <a href="#a0a7bbc1ab8cc9f53b01880dc53f1e92b">More...</a><br /></td></tr>
<tr class="separator:a0a7bbc1ab8cc9f53b01880dc53f1e92b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6a95a94a27b1ee433aeeb914970f603b"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6a95a94a27b1ee433aeeb914970f603b"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a6a95a94a27b1ee433aeeb914970f603b">ArBasePacket</a> (const <a class="el" href="classArBasePacket.html">ArBasePacket</a> &amp;other)</td></tr>
<tr class="memdesc:a6a95a94a27b1ee433aeeb914970f603b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a6a95a94a27b1ee433aeeb914970f603b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5607468c89b78c521dbccb75fb4b720d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a5607468c89b78c521dbccb75fb4b720d"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>bufferContainsBytes</b> (int bytes)</td></tr>
<tr class="separator:a5607468c89b78c521dbccb75fb4b720d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3006b1fbf239cea0013d0a9e0c0c1baf"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a3006b1fbf239cea0013d0a9e0c0c1baf"></a>
virtual <a class="el" href="classArTypes.html#a049ac44ab4c6e3a7f55a7ba68275da53">ArTypes::Byte</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a3006b1fbf239cea0013d0a9e0c0c1baf">bufToByte</a> (void)</td></tr>
<tr class="memdesc:a3006b1fbf239cea0013d0a9e0c0c1baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#a049ac44ab4c6e3a7f55a7ba68275da53" title="A single signed byte. ">ArTypes::Byte</a> from the buffer. <br /></td></tr>
<tr class="separator:a3006b1fbf239cea0013d0a9e0c0c1baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab300d387c442be9ab025e2c089bbd620"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab300d387c442be9ab025e2c089bbd620"></a>
virtual <a class="el" href="classArTypes.html#aff7daca3c28eeaacc95b1ac07997661c">ArTypes::Byte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ab300d387c442be9ab025e2c089bbd620">bufToByte2</a> (void)</td></tr>
<tr class="memdesc:ab300d387c442be9ab025e2c089bbd620"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#aff7daca3c28eeaacc95b1ac07997661c" title="Two signed bytes. ">ArTypes::Byte2</a> from the buffer. <br /></td></tr>
<tr class="separator:ab300d387c442be9ab025e2c089bbd620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a80571dd0c49cfb0717b1fc1e81176672"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a80571dd0c49cfb0717b1fc1e81176672"></a>
virtual <a class="el" href="classArTypes.html#aa9febccb890f2a2d72c3b88d2ab08855">ArTypes::Byte4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a80571dd0c49cfb0717b1fc1e81176672">bufToByte4</a> (void)</td></tr>
<tr class="memdesc:a80571dd0c49cfb0717b1fc1e81176672"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#aa9febccb890f2a2d72c3b88d2ab08855" title="Four signed bytes. ">ArTypes::Byte4</a> from the buffer. <br /></td></tr>
<tr class="separator:a80571dd0c49cfb0717b1fc1e81176672"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ababfcda88abb1a994b6e903a2472ba28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ababfcda88abb1a994b6e903a2472ba28"></a>
virtual <a class="el" href="classArTypes.html#a0bebf1ecd0c9f9422d27fddf5bb8d716">ArTypes::Byte8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ababfcda88abb1a994b6e903a2472ba28">bufToByte8</a> (void)</td></tr>
<tr class="memdesc:ababfcda88abb1a994b6e903a2472ba28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#a0bebf1ecd0c9f9422d27fddf5bb8d716" title="Eight signed bytes. ">ArTypes::Byte8</a> from the buffer. <br /></td></tr>
<tr class="separator:ababfcda88abb1a994b6e903a2472ba28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab36d3542331e2e288747cbcc0d36333e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ab36d3542331e2e288747cbcc0d36333e">bufToData</a> (char *data, int length)</td></tr>
<tr class="memdesc:ab36d3542331e2e288747cbcc0d36333e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets length bytes from buffer and puts them into data.  <a href="#ab36d3542331e2e288747cbcc0d36333e">More...</a><br /></td></tr>
<tr class="separator:ab36d3542331e2e288747cbcc0d36333e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a885a0bdc2036056abadd3a3eafe4bdeb"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a885a0bdc2036056abadd3a3eafe4bdeb">bufToData</a> (unsigned char *data, int length)</td></tr>
<tr class="memdesc:a885a0bdc2036056abadd3a3eafe4bdeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets length bytes from buffer and puts them into data.  <a href="#a885a0bdc2036056abadd3a3eafe4bdeb">More...</a><br /></td></tr>
<tr class="separator:a885a0bdc2036056abadd3a3eafe4bdeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f1536daa451024715fe82cec495e826"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a8f1536daa451024715fe82cec495e826">bufToStr</a> (char *buf, int maxlen)</td></tr>
<tr class="memdesc:a8f1536daa451024715fe82cec495e826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a null-terminated string from the buffer.  <a href="#a8f1536daa451024715fe82cec495e826">More...</a><br /></td></tr>
<tr class="separator:a8f1536daa451024715fe82cec495e826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4209161923996ad1e69469d32cfc6b8"><td class="memItemLeft" align="right" valign="top">std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#aa4209161923996ad1e69469d32cfc6b8">bufToString</a> ()</td></tr>
<tr class="memdesc:aa4209161923996ad1e69469d32cfc6b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a null-terminated string from the buffer.  <a href="#aa4209161923996ad1e69469d32cfc6b8">More...</a><br /></td></tr>
<tr class="separator:aa4209161923996ad1e69469d32cfc6b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab7bd718f2bb6029e1f45928037650620"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab7bd718f2bb6029e1f45928037650620"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ab7bd718f2bb6029e1f45928037650620">bufToString</a> (std::string *s)</td></tr>
<tr class="memdesc:ab7bd718f2bb6029e1f45928037650620"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a null-terminated string from the buffer. <br /></td></tr>
<tr class="separator:ab7bd718f2bb6029e1f45928037650620"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a32d7bab938c3fcc1929890282eb5bec6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a32d7bab938c3fcc1929890282eb5bec6"></a>
virtual <a class="el" href="classArTypes.html#a9870b6101609a525d21481cc16b4c685">ArTypes::UByte</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a32d7bab938c3fcc1929890282eb5bec6">bufToUByte</a> (void)</td></tr>
<tr class="memdesc:a32d7bab938c3fcc1929890282eb5bec6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#a9870b6101609a525d21481cc16b4c685" title="A single unsigned byte. ">ArTypes::UByte</a> from the buffer. <br /></td></tr>
<tr class="separator:a32d7bab938c3fcc1929890282eb5bec6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2d63293b9a983d18430eceb0edbf0b1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac2d63293b9a983d18430eceb0edbf0b1"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ac2d63293b9a983d18430eceb0edbf0b1">bufToUByte2</a> (void)</td></tr>
<tr class="memdesc:ac2d63293b9a983d18430eceb0edbf0b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea" title="Two unsigned bytes. ">ArTypes::UByte2</a> from the buffer. <br /></td></tr>
<tr class="separator:ac2d63293b9a983d18430eceb0edbf0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18d3e098635ec49ee8b7b43dc5c65c77"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061">ArTypes::UByte4</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a18d3e098635ec49ee8b7b43dc5c65c77">bufToUByte4</a> (void)</td></tr>
<tr class="memdesc:a18d3e098635ec49ee8b7b43dc5c65c77"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061" title="Four unsigned bytes. ">ArTypes::UByte4</a> from the buffer.  <a href="#a18d3e098635ec49ee8b7b43dc5c65c77">More...</a><br /></td></tr>
<tr class="separator:a18d3e098635ec49ee8b7b43dc5c65c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2960ee8861663c791a93d4de6c6d2954"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a2960ee8861663c791a93d4de6c6d2954"></a>
virtual <a class="el" href="classArTypes.html#a3d54ee98bc3e287fcfe95b8a5a539ed8">ArTypes::UByte8</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a2960ee8861663c791a93d4de6c6d2954">bufToUByte8</a> (void)</td></tr>
<tr class="memdesc:a2960ee8861663c791a93d4de6c6d2954"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a <a class="el" href="classArTypes.html#a3d54ee98bc3e287fcfe95b8a5a539ed8" title="Eight unsigned bytes. ">ArTypes::UByte8</a> from the buffer. <br /></td></tr>
<tr class="separator:a2960ee8861663c791a93d4de6c6d2954"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a1712c143161298c10235a7739c73af"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4a1712c143161298c10235a7739c73af"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a4a1712c143161298c10235a7739c73af">byte2ToBuf</a> (<a class="el" href="classArTypes.html#aff7daca3c28eeaacc95b1ac07997661c">ArTypes::Byte2</a> val)</td></tr>
<tr class="memdesc:a4a1712c143161298c10235a7739c73af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#aff7daca3c28eeaacc95b1ac07997661c" title="Two signed bytes. ">ArTypes::Byte2</a> into packets buffer. <br /></td></tr>
<tr class="separator:a4a1712c143161298c10235a7739c73af"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ab2c8b1224dc27fc96f22ff8f027e28"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ab2c8b1224dc27fc96f22ff8f027e28"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a6ab2c8b1224dc27fc96f22ff8f027e28">byte4ToBuf</a> (<a class="el" href="classArTypes.html#aa9febccb890f2a2d72c3b88d2ab08855">ArTypes::Byte4</a> val)</td></tr>
<tr class="memdesc:a6ab2c8b1224dc27fc96f22ff8f027e28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#aa9febccb890f2a2d72c3b88d2ab08855" title="Four signed bytes. ">ArTypes::Byte4</a> into packets buffer. <br /></td></tr>
<tr class="separator:a6ab2c8b1224dc27fc96f22ff8f027e28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a63bdb1748be6214d1b9e98179f1692d6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a63bdb1748be6214d1b9e98179f1692d6"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a63bdb1748be6214d1b9e98179f1692d6">byte8ToBuf</a> (<a class="el" href="classArTypes.html#a0bebf1ecd0c9f9422d27fddf5bb8d716">ArTypes::Byte8</a> val)</td></tr>
<tr class="memdesc:a63bdb1748be6214d1b9e98179f1692d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#a0bebf1ecd0c9f9422d27fddf5bb8d716" title="Eight signed bytes. ">ArTypes::Byte8</a> into packets buffer. <br /></td></tr>
<tr class="separator:a63bdb1748be6214d1b9e98179f1692d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9afdff469545e32649067ed0db391046"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9afdff469545e32649067ed0db391046"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a9afdff469545e32649067ed0db391046">byteToBuf</a> (<a class="el" href="classArTypes.html#a049ac44ab4c6e3a7f55a7ba68275da53">ArTypes::Byte</a> val)</td></tr>
<tr class="memdesc:a9afdff469545e32649067ed0db391046"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#a049ac44ab4c6e3a7f55a7ba68275da53" title="A single signed byte. ">ArTypes::Byte</a> into packets buffer. <br /></td></tr>
<tr class="separator:a9afdff469545e32649067ed0db391046"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a832d8c09ea2dc84a0df317ad2b24008d"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a832d8c09ea2dc84a0df317ad2b24008d">dataToBuf</a> (const char *data, int length)</td></tr>
<tr class="memdesc:a832d8c09ea2dc84a0df317ad2b24008d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies length bytes from data into packet buffer.  <a href="#a832d8c09ea2dc84a0df317ad2b24008d">More...</a><br /></td></tr>
<tr class="separator:a832d8c09ea2dc84a0df317ad2b24008d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae7d63546b6f9057b91bc3fd7b8661d1c"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ae7d63546b6f9057b91bc3fd7b8661d1c">dataToBuf</a> (const unsigned char *data, int length)</td></tr>
<tr class="memdesc:ae7d63546b6f9057b91bc3fd7b8661d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies length bytes from data into packet buffer.  <a href="#ae7d63546b6f9057b91bc3fd7b8661d1c">More...</a><br /></td></tr>
<tr class="separator:ae7d63546b6f9057b91bc3fd7b8661d1c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1071623748c7c8f37ebc03d4f8c00559"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a1071623748c7c8f37ebc03d4f8c00559">duplicatePacket</a> (<a class="el" href="classArBasePacket.html">ArBasePacket</a> *packet)</td></tr>
<tr class="memdesc:a1071623748c7c8f37ebc03d4f8c00559"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes this packet a duplicate of another packet.  <a href="#a1071623748c7c8f37ebc03d4f8c00559">More...</a><br /></td></tr>
<tr class="separator:a1071623748c7c8f37ebc03d4f8c00559"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9fedf1e94cbed1ffabbbbf8ed8e94d6"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ae9fedf1e94cbed1ffabbbbf8ed8e94d6">empty</a> (void)</td></tr>
<tr class="memdesc:ae9fedf1e94cbed1ffabbbbf8ed8e94d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">resets the length for more data to be added  <a href="#ae9fedf1e94cbed1ffabbbbf8ed8e94d6">More...</a><br /></td></tr>
<tr class="separator:ae9fedf1e94cbed1ffabbbbf8ed8e94d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af279f7795e92c1c5f80edaa018a89345"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af279f7795e92c1c5f80edaa018a89345"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#af279f7795e92c1c5f80edaa018a89345">finalizePacket</a> (void)</td></tr>
<tr class="memdesc:af279f7795e92c1c5f80edaa018a89345"><td class="mdescLeft">&#160;</td><td class="mdescRight">MakeFinals the packet in preparation for sending, must be done. <br /></td></tr>
<tr class="separator:af279f7795e92c1c5f80edaa018a89345"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab647b14794b49dc6e34cdb8b82275cfe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab647b14794b49dc6e34cdb8b82275cfe"></a>
virtual const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ab647b14794b49dc6e34cdb8b82275cfe">getBuf</a> (void) const </td></tr>
<tr class="memdesc:ab647b14794b49dc6e34cdb8b82275cfe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a const pointer to the buffer the packet uses. <br /></td></tr>
<tr class="separator:ab647b14794b49dc6e34cdb8b82275cfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adce8426ca9eda8ea59114265afe0a294"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adce8426ca9eda8ea59114265afe0a294"></a>
virtual char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#adce8426ca9eda8ea59114265afe0a294">getBuf</a> (void)</td></tr>
<tr class="memdesc:adce8426ca9eda8ea59114265afe0a294"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets a pointer to the buffer the packet uses. <br /></td></tr>
<tr class="separator:adce8426ca9eda8ea59114265afe0a294"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc317a80a2a2ed97529455016b615c88"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adc317a80a2a2ed97529455016b615c88"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#adc317a80a2a2ed97529455016b615c88">getDataLength</a> (void) const </td></tr>
<tr class="memdesc:adc317a80a2a2ed97529455016b615c88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the length of the data in the packet. <br /></td></tr>
<tr class="separator:adc317a80a2a2ed97529455016b615c88"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f2cace3e90269774854a24c04cf20ef"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f2cace3e90269774854a24c04cf20ef"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a9f2cace3e90269774854a24c04cf20ef">getDataReadLength</a> (void) const </td></tr>
<tr class="memdesc:a9f2cace3e90269774854a24c04cf20ef"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets how far into the data of the packet that has been read. <br /></td></tr>
<tr class="separator:a9f2cace3e90269774854a24c04cf20ef"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae79313eb5ee1618c53e971b048e5d9b7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae79313eb5ee1618c53e971b048e5d9b7"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ae79313eb5ee1618c53e971b048e5d9b7">getFooterLength</a> (void) const </td></tr>
<tr class="memdesc:ae79313eb5ee1618c53e971b048e5d9b7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the length of the header. <br /></td></tr>
<tr class="separator:ae79313eb5ee1618c53e971b048e5d9b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad7fae5c87596d533a8621a849867dafd"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad7fae5c87596d533a8621a849867dafd"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ad7fae5c87596d533a8621a849867dafd">getHeaderLength</a> (void) const </td></tr>
<tr class="memdesc:ad7fae5c87596d533a8621a849867dafd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the length of the header. <br /></td></tr>
<tr class="separator:ad7fae5c87596d533a8621a849867dafd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1ffc091d20ab361fe67a664b322976a3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a1ffc091d20ab361fe67a664b322976a3"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a1ffc091d20ab361fe67a664b322976a3">getLength</a> (void) const </td></tr>
<tr class="memdesc:a1ffc091d20ab361fe67a664b322976a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the total length of the packet. <br /></td></tr>
<tr class="separator:a1ffc091d20ab361fe67a664b322976a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51def2aaa583901ebb347c8e5c8ce03c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a51def2aaa583901ebb347c8e5c8ce03c"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a51def2aaa583901ebb347c8e5c8ce03c">getMaxLength</a> (void) const </td></tr>
<tr class="memdesc:a51def2aaa583901ebb347c8e5c8ce03c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the maximum length packet. <br /></td></tr>
<tr class="separator:a51def2aaa583901ebb347c8e5c8ce03c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae46601e750b76486525b09f7898dda94"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ae46601e750b76486525b09f7898dda94"></a>
virtual <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ae46601e750b76486525b09f7898dda94">getReadLength</a> (void) const </td></tr>
<tr class="memdesc:ae46601e750b76486525b09f7898dda94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets how far into the packet that has been read. <br /></td></tr>
<tr class="separator:ae46601e750b76486525b09f7898dda94"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7080a7c3199abf5a82ec932de7e733cb"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a7080a7c3199abf5a82ec932de7e733cb">isValid</a> (void)</td></tr>
<tr class="memdesc:a7080a7c3199abf5a82ec932de7e733cb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the packet is valid, i.e. no error has occurred when reading/writing.  <a href="#a7080a7c3199abf5a82ec932de7e733cb">More...</a><br /></td></tr>
<tr class="separator:a7080a7c3199abf5a82ec932de7e733cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfab2e91ed6914dd58240994972c6963"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acfab2e91ed6914dd58240994972c6963"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#acfab2e91ed6914dd58240994972c6963">log</a> (void)</td></tr>
<tr class="memdesc:acfab2e91ed6914dd58240994972c6963"><td class="mdescLeft">&#160;</td><td class="mdescRight">ArLogs the hex and decimal values of each byte of the packet, and possibly extra metadata as well. <br /></td></tr>
<tr class="separator:acfab2e91ed6914dd58240994972c6963"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6901dadc212e751d1cb18b60236820ab"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6901dadc212e751d1cb18b60236820ab"></a>
<a class="el" href="classArBasePacket.html">ArBasePacket</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a6901dadc212e751d1cb18b60236820ab">operator=</a> (const <a class="el" href="classArBasePacket.html">ArBasePacket</a> &amp;other)</td></tr>
<tr class="memdesc:a6901dadc212e751d1cb18b60236820ab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Assignment operator. <br /></td></tr>
<tr class="separator:a6901dadc212e751d1cb18b60236820ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6ee1ecf55dce762dae0c0ac068201798"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6ee1ecf55dce762dae0c0ac068201798"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a6ee1ecf55dce762dae0c0ac068201798">printHex</a> (void)</td></tr>
<tr class="memdesc:a6ee1ecf55dce762dae0c0ac068201798"><td class="mdescLeft">&#160;</td><td class="mdescRight">ArLogs the hex value of each byte in the packet. <br /></td></tr>
<tr class="separator:a6ee1ecf55dce762dae0c0ac068201798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af46bfa2d7acc95bc6524e70bd6d4a0ba"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#af46bfa2d7acc95bc6524e70bd6d4a0ba">resetRead</a> (void)</td></tr>
<tr class="memdesc:af46bfa2d7acc95bc6524e70bd6d4a0ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Restart the reading process.  <a href="#af46bfa2d7acc95bc6524e70bd6d4a0ba">More...</a><br /></td></tr>
<tr class="separator:af46bfa2d7acc95bc6524e70bd6d4a0ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac0c74c5811fa4737ed5cd8a6beccda3e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ac0c74c5811fa4737ed5cd8a6beccda3e">resetValid</a> ()</td></tr>
<tr class="memdesc:ac0c74c5811fa4737ed5cd8a6beccda3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resets the valid state of the packet.  <a href="#ac0c74c5811fa4737ed5cd8a6beccda3e">More...</a><br /></td></tr>
<tr class="separator:ac0c74c5811fa4737ed5cd8a6beccda3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4dfffabbb57e00e4a18a651cd3f4796a"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4dfffabbb57e00e4a18a651cd3f4796a"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a4dfffabbb57e00e4a18a651cd3f4796a">setBuf</a> (char *buf, <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> bufferSize)</td></tr>
<tr class="memdesc:a4dfffabbb57e00e4a18a651cd3f4796a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the buffer the packet is using. <br /></td></tr>
<tr class="separator:a4dfffabbb57e00e4a18a651cd3f4796a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adef8ef187c739064cb6095a4b7464f06"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="adef8ef187c739064cb6095a4b7464f06"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#adef8ef187c739064cb6095a4b7464f06">setHeaderLength</a> (<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> length)</td></tr>
<tr class="memdesc:adef8ef187c739064cb6095a4b7464f06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the length of the header. <br /></td></tr>
<tr class="separator:adef8ef187c739064cb6095a4b7464f06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a18bd814008fa96d4a1c0873190268198"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a18bd814008fa96d4a1c0873190268198"></a>
virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a18bd814008fa96d4a1c0873190268198">setLength</a> (<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> length)</td></tr>
<tr class="memdesc:a18bd814008fa96d4a1c0873190268198"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the length of the packet. <br /></td></tr>
<tr class="separator:a18bd814008fa96d4a1c0873190268198"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d5e1ea36751d0c213354fe6d0db573d"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9d5e1ea36751d0c213354fe6d0db573d"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a9d5e1ea36751d0c213354fe6d0db573d">setMaxLength</a> (<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> bufferSize)</td></tr>
<tr class="memdesc:a9d5e1ea36751d0c213354fe6d0db573d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the maximum buffer size (if new size is &lt;= current does nothing) <br /></td></tr>
<tr class="separator:a9d5e1ea36751d0c213354fe6d0db573d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a424e064fc126ffde410b70efdb3a2f57"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a424e064fc126ffde410b70efdb3a2f57"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a424e064fc126ffde410b70efdb3a2f57">setReadLength</a> (<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> readLength)</td></tr>
<tr class="memdesc:a424e064fc126ffde410b70efdb3a2f57"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the read length. <br /></td></tr>
<tr class="separator:a424e064fc126ffde410b70efdb3a2f57"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a92dcff8e2eef538109a9b9c9ad5e46f3"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a92dcff8e2eef538109a9b9c9ad5e46f3">strNToBuf</a> (const char *str, int length)</td></tr>
<tr class="memdesc:a92dcff8e2eef538109a9b9c9ad5e46f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the given number of bytes from str into packet buffer.  <a href="#a92dcff8e2eef538109a9b9c9ad5e46f3">More...</a><br /></td></tr>
<tr class="separator:a92dcff8e2eef538109a9b9c9ad5e46f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1367558f1c0ce2830072a649ad935d21"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a1367558f1c0ce2830072a649ad935d21">strToBuf</a> (const char *str)</td></tr>
<tr class="memdesc:a1367558f1c0ce2830072a649ad935d21"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts a NULL-terminated string into packet buffer.  <a href="#a1367558f1c0ce2830072a649ad935d21">More...</a><br /></td></tr>
<tr class="separator:a1367558f1c0ce2830072a649ad935d21"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aac138405a70ebebb31813581716b48fe"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#aac138405a70ebebb31813581716b48fe">strToBufPadded</a> (const char *str, int length)</td></tr>
<tr class="memdesc:aac138405a70ebebb31813581716b48fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies length bytes from str, if str ends before length, pads data with 0s.  <a href="#aac138405a70ebebb31813581716b48fe">More...</a><br /></td></tr>
<tr class="separator:aac138405a70ebebb31813581716b48fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aeec1b2c2dc6902e3c2b820fb2ddbf0e2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aeec1b2c2dc6902e3c2b820fb2ddbf0e2"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#aeec1b2c2dc6902e3c2b820fb2ddbf0e2">uByte2ToBuf</a> (<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a> val)</td></tr>
<tr class="memdesc:aeec1b2c2dc6902e3c2b820fb2ddbf0e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea" title="Two unsigned bytes. ">ArTypes::UByte2</a> into packet buffer. <br /></td></tr>
<tr class="separator:aeec1b2c2dc6902e3c2b820fb2ddbf0e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abeb94fdd3729b05abb4574903887876c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="abeb94fdd3729b05abb4574903887876c"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#abeb94fdd3729b05abb4574903887876c">uByte4ToBuf</a> (<a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061">ArTypes::UByte4</a> val)</td></tr>
<tr class="memdesc:abeb94fdd3729b05abb4574903887876c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061" title="Four unsigned bytes. ">ArTypes::UByte4</a> into packet buffer. <br /></td></tr>
<tr class="separator:abeb94fdd3729b05abb4574903887876c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a984b96d570c5631ca362fb0d5c05b9c2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a984b96d570c5631ca362fb0d5c05b9c2"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a984b96d570c5631ca362fb0d5c05b9c2">uByte8ToBuf</a> (<a class="el" href="classArTypes.html#a3d54ee98bc3e287fcfe95b8a5a539ed8">ArTypes::UByte8</a> val)</td></tr>
<tr class="memdesc:a984b96d570c5631ca362fb0d5c05b9c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#a3d54ee98bc3e287fcfe95b8a5a539ed8" title="Eight unsigned bytes. ">ArTypes::UByte8</a> into packet buffer. <br /></td></tr>
<tr class="separator:a984b96d570c5631ca362fb0d5c05b9c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab909290dd24db16046bdf792a20eb6da"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ab909290dd24db16046bdf792a20eb6da"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#ab909290dd24db16046bdf792a20eb6da">uByteToBuf</a> (<a class="el" href="classArTypes.html#a9870b6101609a525d21481cc16b4c685">ArTypes::UByte</a> val)</td></tr>
<tr class="memdesc:ab909290dd24db16046bdf792a20eb6da"><td class="mdescLeft">&#160;</td><td class="mdescRight">Puts <a class="el" href="classArTypes.html#a9870b6101609a525d21481cc16b4c685" title="A single unsigned byte. ">ArTypes::UByte</a> into packets buffer. <br /></td></tr>
<tr class="separator:ab909290dd24db16046bdf792a20eb6da"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a68b5e82d2b35ad901e54b0e76ed5f9e1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a68b5e82d2b35ad901e54b0e76ed5f9e1"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a68b5e82d2b35ad901e54b0e76ed5f9e1">~ArBasePacket</a> ()</td></tr>
<tr class="memdesc:a68b5e82d2b35ad901e54b0e76ed5f9e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:a68b5e82d2b35ad901e54b0e76ed5f9e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
<tr class="memitem:a8ae7b4cc029d9c60b510b55b87bb7432"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a8ae7b4cc029d9c60b510b55b87bb7432"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classArBasePacket.html#a8ae7b4cc029d9c60b510b55b87bb7432">hasWriteCapacity</a> (int bytes)</td></tr>
<tr class="memdesc:a8ae7b4cc029d9c60b510b55b87bb7432"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns true if there is enough room in the packet to add the specified number of bytes. <br /></td></tr>
<tr class="separator:a8ae7b4cc029d9c60b510b55b87bb7432"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acce320acba0b414b25b74438a5327e6c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acce320acba0b414b25b74438a5327e6c"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>isNextGood</b> (int bytes)</td></tr>
<tr class="separator:acce320acba0b414b25b74438a5327e6c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected Attributes</h2></td></tr>
<tr class="memitem:a9092a2937b79d310d185d4129b60cdf5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9092a2937b79d310d185d4129b60cdf5"></a>
char *&#160;</td><td class="memItemRight" valign="bottom"><b>myBuf</b></td></tr>
<tr class="separator:a9092a2937b79d310d185d4129b60cdf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa5f530d19beb63aa1d60b9bb572b8d36"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa5f530d19beb63aa1d60b9bb572b8d36"></a>
<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myFooterLength</b></td></tr>
<tr class="separator:aa5f530d19beb63aa1d60b9bb572b8d36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9f9bad6626aa01d09bf12c35e55987a4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9f9bad6626aa01d09bf12c35e55987a4"></a>
<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myHeaderLength</b></td></tr>
<tr class="separator:a9f9bad6626aa01d09bf12c35e55987a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ae8fe5288b8b3795389760efc7dbf2f"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ae8fe5288b8b3795389760efc7dbf2f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myIsValid</b></td></tr>
<tr class="separator:a4ae8fe5288b8b3795389760efc7dbf2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a91e9d1ea429f2ed4fa716c3c3bdf6949"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a91e9d1ea429f2ed4fa716c3c3bdf6949"></a>
<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myLength</b></td></tr>
<tr class="separator:a91e9d1ea429f2ed4fa716c3c3bdf6949"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a08873fb4e0d28b17e63732a0fdf16cda"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a08873fb4e0d28b17e63732a0fdf16cda"></a>
<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myMaxLength</b></td></tr>
<tr class="separator:a08873fb4e0d28b17e63732a0fdf16cda"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ce67fa752c6250da6f9cebfd87e01b4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ce67fa752c6250da6f9cebfd87e01b4"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>myOwnMyBuf</b></td></tr>
<tr class="separator:a4ce67fa752c6250da6f9cebfd87e01b4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a881bab5d57fd16f3024c5177753a32ec"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a881bab5d57fd16f3024c5177753a32ec"></a>
<a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td><td class="memItemRight" valign="bottom"><b>myReadLength</b></td></tr>
<tr class="separator:a881bab5d57fd16f3024c5177753a32ec"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Base packet class. </p>
<p>This class is a base class for specific packet types implemented by base classes. In most cases, you would not instantiate this class directly, but instead use a subclass. However, <a class="el" href="classArBasePacket.html" title="Base packet class. ">ArBasePacket</a> contains many of the functions used to access the packet's data.</p>
<p>A packet is a sequence of values stored in a buffer. The contents of a packet's data buffer is read from a device or other program or written to the device (for example, a serial port or TCP port using an <a class="el" href="classArDeviceConnection.html" title="Base class for device connections. ">ArDeviceConnection</a> or using ArNetworking), optionally preceded by a header with some identifying data and a length, and optionally followed by a footer with a checksum of the data. (If the header length of a particular packet type is 0, no header is written or expected on read, and likewise with footer.)</p>
<p>Values are added to the buffer or removed from the buffer in sequence. The "bufTo" methods are used to remove values from the buffer, and the "ToBuf" methods are used to add values to the buffer. There are different methods for different sized values.</p>
<p><a class="el" href="classArBasePacket.html" title="Base packet class. ">ArBasePacket</a> keeps a current position index in the buffer, which is the position at which new values are added or values are removed.</p>
<p>A buffer may be statically allocated externally and supplied to the constructor (also give a buffer size to determine the maximum amount of data that can be placed in that bufer), or automatically and dynamically allocated by <a class="el" href="classArBasePacket.html" title="Base packet class. ">ArBasePacket</a> as needed (the default behavior).</p>
<p>When it is time to write out a packet, call <a class="el" href="classArBasePacket.html#af279f7795e92c1c5f80edaa018a89345" title="MakeFinals the packet in preparation for sending, must be done. ">finalizePacket()</a> to set up the footer if neccesary. To reuse a packet, use <a class="el" href="classArBasePacket.html#ae9fedf1e94cbed1ffabbbbf8ed8e94d6" title="resets the length for more data to be added ">empty()</a> to reset the buffer; new data will then be added to the beginning of the buffer again. </p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a0a7bbc1ab8cc9f53b01880dc53f1e92b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">ArBasePacket::ArBasePacket </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td>
          <td class="paramname"><em>bufferSize</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td>
          <td class="paramname"><em>headerLength</em> = <code>0</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em> = <code>NULL</code>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classArTypes.html#a0efae5ee63aec92972d78ecaffdbfcea">ArTypes::UByte2</a>&#160;</td>
          <td class="paramname"><em>footerLength</em> = <code>0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Constructor. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bufferSize</td><td>size of the data buffer. Note default is 0, so packet will have no data capacity unless set. </td></tr>
    <tr><td class="paramname">headerLength</td><td>length of the header </td></tr>
    <tr><td class="paramname">buf</td><td>buffer packet uses, if NULL, instance will allocate memory </td></tr>
    <tr><td class="paramname">footerLength</td><td>length of the footer following the data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="ab36d3542331e2e288747cbcc0d36333e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::bufToData </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets length bytes from buffer and puts them into data. </p>
<p>copies length bytes from the buffer into data, length is passed in, not read from packet</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>character array to copy the data into </td></tr>
    <tr><td class="paramname">length</td><td>number of bytes to copy into data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a885a0bdc2036056abadd3a3eafe4bdeb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::bufToData </td>
          <td>(</td>
          <td class="paramtype">unsigned char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets length bytes from buffer and puts them into data. </p>
<p>This was added to get around having to cast data you put in, since the data shouldn't really matter if its signed or unsigned.</p>
<p>copies length bytes from the buffer into data, length is passed in, not read from packet </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>character array to copy the data into </td></tr>
    <tr><td class="paramname">length</td><td>number of bytes to copy into data </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a8f1536daa451024715fe82cec495e826"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::bufToStr </td>
          <td>(</td>
          <td class="paramtype">char *&#160;</td>
          <td class="paramname"><em>buf</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>len</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets a null-terminated string from the buffer. </p>
<p>Copy a string from the packet buffer into the given buffer, stopping when the end of the packet buffer is reached, the given length is reached, or a NUL character ('\0') is reached.</p>
<p>If the given length is not large enough, then the remainder of the string is flushed from the packet. A NUL character ('\0') is appended to <em>buf</em> if there is sufficient room after copying the sting from the packet, otherwise no NUL is added (i.e. if <em>len</em> bytes are copied). </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">buf</td><td>Destination buffer </td></tr>
    <tr><td class="paramname">len</td><td>Maximum number of characters to copy into the destination buffer </td></tr>
  </table>
  </dd>
</dl>
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="demo_8cpp-example.html#a3">demo.cpp</a>.</dd>
</dl>
</div>
</div>
<a class="anchor" id="aa4209161923996ad1e69469d32cfc6b8"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">std::string ArBasePacket::bufToString </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Gets a null-terminated string from the buffer. </p>
<p>Note the string obtained from the packet can have at most 512 characters. </p>

</div>
</div>
<a class="anchor" id="a18d3e098635ec49ee8b7b43dc5c65c77"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061">ArTypes::UByte4</a> ArBasePacket::bufToUByte4 </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets a <a class="el" href="classArTypes.html#af596f738ccf86d1fa8a64af52ea2f061" title="Four unsigned bytes. ">ArTypes::UByte4</a> from the buffer. </p>
<p>MPL 2013_10_23 this was Byte4 not UByte4 </p>

</div>
</div>
<a class="anchor" id="a832d8c09ea2dc84a0df317ad2b24008d"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::dataToBuf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copies length bytes from data into packet buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>chacter array to copy into buffer </td></tr>
    <tr><td class="paramname">length</td><td>how many bytes to copy from data into packet </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae7d63546b6f9057b91bc3fd7b8661d1c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::dataToBuf </td>
          <td>(</td>
          <td class="paramtype">const unsigned char *&#160;</td>
          <td class="paramname"><em>data</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copies length bytes from data into packet buffer. </p>
<p>This was added to get around having to cast data you put in, since the data shouldn't really matter if its signed or unsigned.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">data</td><td>chacter array to copy into buffer </td></tr>
    <tr><td class="paramname">length</td><td>how many bytes to copy from data into packet </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1071623748c7c8f37ebc03d4f8c00559"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::duplicatePacket </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classArBasePacket.html">ArBasePacket</a> *&#160;</td>
          <td class="paramname"><em>packet</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Makes this packet a duplicate of another packet. </p>
<p>Copies the given packets buffer into the buffer of this packet, also sets this length and readlength to what the given packet has.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">packet</td><td>the packet to duplicate </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ae9fedf1e94cbed1ffabbbbf8ed8e94d6"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::empty </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>resets the length for more data to be added </p>
<p>Sets the packet length back to be the packets header length again. </p>

</div>
</div>
<a class="anchor" id="a7080a7c3199abf5a82ec932de7e733cb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool ArBasePacket::isValid </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns whether the packet is valid, i.e. no error has occurred when reading/writing. </p>
<p>A packet is considered "invalid" if an attempt is made to write too much data into the packet, or to read too much data from the packet.</p>
<p>Calls to <a class="el" href="classArBasePacket.html#ae9fedf1e94cbed1ffabbbbf8ed8e94d6" title="resets the length for more data to be added ">empty()</a> and <a class="el" href="classArBasePacket.html#af46bfa2d7acc95bc6524e70bd6d4a0ba" title="Restart the reading process. ">resetRead()</a> will restore the valid state. </p>

</div>
</div>
<a class="anchor" id="af46bfa2d7acc95bc6524e70bd6d4a0ba"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::resetRead </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Restart the reading process. </p>
<p>Sets the length read back to the header length so the packet can be reread using the other methods. </p>

</div>
</div>
<a class="anchor" id="ac0c74c5811fa4737ed5cd8a6beccda3e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::resetValid </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Resets the valid state of the packet. </p>
<p>Resets the packet to the "valid" state.</p>
<p>This method should generally only be called externally when the application has taken some recovery action. For example, if an attempt to write a long string to the packet fails (and <a class="el" href="classArBasePacket.html#a7080a7c3199abf5a82ec932de7e733cb" title="Returns whether the packet is valid, i.e. no error has occurred when reading/writing. ">isValid()</a> returns false), then a smaller string may be written instead. </p>

</div>
</div>
<a class="anchor" id="a92dcff8e2eef538109a9b9c9ad5e46f3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::strNToBuf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copies the given number of bytes from str into packet buffer. </p>
<p>This method performs no bounds checking on the given length and the contents of the string.</p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000007">Deprecated:</a></b></dt><dd>use <a class="el" href="classArBasePacket.html#aac138405a70ebebb31813581716b48fe" title="Copies length bytes from str, if str ends before length, pads data with 0s. ">strToBufPadded()</a>, <a class="el" href="classArBasePacket.html#a1367558f1c0ce2830072a649ad935d21" title="Puts a NULL-terminated string into packet buffer. ">strToBuf()</a>, or <a class="el" href="classArBasePacket.html#a832d8c09ea2dc84a0df317ad2b24008d" title="Copies length bytes from data into packet buffer. ">dataToBuf()</a> instead </dd></dl>
<p>For string operations, strNToBufPadded() is preferred. For raw data operations, <a class="el" href="classArBasePacket.html#a832d8c09ea2dc84a0df317ad2b24008d" title="Copies length bytes from data into packet buffer. ">dataToBuf()</a> is preferred. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>character array to copy into the packet buffer </td></tr>
    <tr><td class="paramname">length</td><td>how many characters to copy from str into the packet buffer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="a1367558f1c0ce2830072a649ad935d21"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::strToBuf </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Puts a NULL-terminated string into packet buffer. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>string to copy into buffer </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="aac138405a70ebebb31813581716b48fe"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void ArBasePacket::strToBufPadded </td>
          <td>(</td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>str</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>length</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Copies length bytes from str, if str ends before length, pads data with 0s. </p>
<p>If string ends before length it pads the string with NUL ('\0') characters.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">str</td><td>character array to copy into buffer </td></tr>
    <tr><td class="paramname">length</td><td>how many bytes to copy from the str into packet </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<hr/>The documentation for this class was generated from the following files:<ul>
<li>ArBasePacket.h</li>
<li>ArBasePacket.cpp</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="classArBasePacket.html">ArBasePacket</a></li>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
